docs(factories): add quickstart - #517
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
I'm starting a first review of this pull request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR adds the closed-beta Warp Factories quickstart, Factories navigation scaffolding, and broader Oz-to-variable terminology updates across the docs. The quickstart itself is structured around prerequisites, setup, submission, success checks, and troubleshooting.
Concerns
- Several newly added Factories pages are still internal
[STUB]placeholders, and the diff exposes them through public routing/navigation. These need public-ready content or need to stay hidden before merge.
Verdict
Found: 0 critical, 2 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
| label: "Overview" | ||
| --- | ||
|
|
||
| [STUB — pending content from HYC/content team for the 8/18 closed-beta soft launch. Owner: HYC. This page is the Factories tab landing page (`/factories/`). |
There was a problem hiding this comment.
[STUB] launch notes. Replace the placeholder with reader-ready content before publishing /factories/.
| { slug: 'factories', label: 'Overview' }, | ||
| { slug: 'factories/quickstart', label: 'Quickstart' }, | ||
| { slug: 'factories/how-factories-work', label: 'How Factories work' }, | ||
| { slug: 'factories/configure-your-factory', label: 'Configure your Factory' }, | ||
| { slug: 'factories/connect-your-factory', label: 'Connect your Factory' }, | ||
| { slug: 'factories/infrastructure-and-security', label: 'Infrastructure & security' }, |
There was a problem hiding this comment.
factories/* pages whose bodies are still internal placeholder notes. Hide the entries until those pages have public-ready content, or replace the stubs before adding them to navigation.
812ce0b to
db8cf98
Compare
db8cf98 to
eda679e
Compare
eda679e to
f2a795e
Compare
|
/oz-review |
|
I'm re-reviewing this pull request in response to a review request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR replaces the factories quickstart stub with a complete first-run path that covers prerequisites, setup, optional integrations, subagent selection, first work submission, and follow-up troubleshooting. The structure is appropriate for a quickstart, and the diff does not introduce security-relevant code or configuration.
Concerns
- The new copy uses “AI credits,” but the docs glossary requires “credits” without the AI prefix.
- No approved or repository spec context was provided, so there are no spec-drift concerns to report.
Verdict
Found: 0 critical, 1 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
|
|
||
| 1. #### Select a plan or credits | ||
|
|
||
| If your team already has an active plan with available AI credits, setup skips this step. Otherwise, setup opens **Select a Warp Plan**, where you subscribe to a plan or buy AI credits for the team. A factory needs available AI credits to run its agents. |
There was a problem hiding this comment.
| If your team already has an active plan with available AI credits, setup skips this step. Otherwise, setup opens **Select a Warp Plan**, where you subscribe to a plan or buy AI credits for the team. A factory needs available AI credits to run its agents. | |
| If your team already has an active plan with available credits, setup skips this step. Otherwise, setup opens **Select a Warp Plan**, where you subscribe to a plan or buy credits for the team. A factory needs available credits to run its agents. |
f2a795e to
7c45b9c
Compare
|
/oz-review |
|
I'm re-reviewing this pull request in response to a review request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR replaces the placeholder Factory quickstart with a structured prerequisites section, a Starlight Steps flow for setup, first-work-item submission guidance, next steps, and one troubleshooting entry. I reviewed the attached diff, docs-specific guidance, security implications, and the provided spec context; spec_context.md says no approved or repository spec context exists, so there is no spec drift to validate.
Concerns
- The quickstart does not provide an actionable entry point for opening factory setup, so a first-time reader cannot follow the critical path from the documentation alone.
- Security pass: no security-specific issues found in the changed documentation.
Verdict
Found: 0 critical, 1 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
|
|
||
| 2. #### Connect GitHub | ||
|
|
||
| Sign in to Warp, open factory setup, and select the Warp team that will own the factory. Complete the GitHub authorization or installation flow. |
There was a problem hiding this comment.
open factory setup is not actionable enough for a quickstart; name the exact surface, URL, or navigation path where readers start this flow so they can complete the first setup step without prior context.
7c45b9c to
0cb54f0
Compare
|
/oz-review |
|
I'm re-reviewing this pull request in response to a review request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR replaces the factories quickstart stub with a setup flow from prerequisites through submitting and inspecting a first work item. I found two correctness gaps in the instructions that can leave first-time readers unable to complete the quickstart or create a roster that cannot perform the sample request.
Concerns
- The first actionable setup step tells readers to open factory setup but does not identify the app surface, URL, invite flow, or navigation path where setup starts.
- The subagent selection step allows rosters without Implementation even though the sample first work item asks the factory to edit code and open a pull request.
- No approved spec context was available for implementation-vs-spec validation. I found no security issues in this docs-only diff.
Verdict
Found: 0 critical, 2 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
|
|
||
| 2. #### Connect GitHub | ||
|
|
||
| Sign in to Warp, open factory setup, and select the Warp team that will own the factory. Complete the GitHub authorization or installation flow. |
There was a problem hiding this comment.
|
|
||
| 6. #### Choose the subagent flow | ||
|
|
||
| Foreman is always included and cannot be removed. Select at least one of **Triage**, **Specification**, **Implementation**, and **Review**. Each subagent is individually selectable, so the initial roster contains 2–5 agents. |
There was a problem hiding this comment.
|
/oz-review |
|
I'm re-reviewing this pull request in response to a review request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR replaces the factories quickstart stub with a structured 10-minute setup path, prerequisites, expected outcomes, next steps, and focused troubleshooting. I reviewed the changed MDX content, docs style requirements, the security checklist, and the provided spec context.
Concerns
- No blocking concerns found.
- No approved or repository spec context was available for implementation alignment.
- No security-relevant changes were introduced by this documentation-only diff.
Verdict
Found: 0 critical, 0 important, 0 suggestions
Approve
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
|
|
||
| _~5 minutes_ | ||
|
|
||
| <Steps> |
There was a problem hiding this comment.
This section is a procedure but it is not correctly styled or written as a procedure. Each step contains several prose paragraphs and multiple actions. But our style guide, guides template, and guides drafting skill give different direction: use numbered steps with one or a small grouping of related actions per step. It's much harder to scan two prose paragraphs and quickly extract what actions need to be taken to complete the task.
So for example, this first step could be transformed like so:
- Open the Warp Factories web app and sign in.
- In the sidebar (is the sidebar to the left or right?), next to Factories, click + to open the setup wizard.
Review and revise all steps against the guidance for procedural content that we already have.
|
|
||
| _~5 minutes_ | ||
|
|
||
| <Steps> |
There was a problem hiding this comment.
Same thing here: review this procedure against the official guidance and update as necessary.
- Tighten the intro sentence's transition into the quickstart's goals. - Rewrite the two prerequisite bullets as direct, active-voice statements. - Restructure both Steps sections (Create your factory, Submit your first work item) so each numbered step covers one primary action or a small tightly related group, instead of multi-paragraph prose blocks that bundle several actions together. Move the 'no team yet' conditional into a callout, matching the pattern used in the cloud agents quickstart. Co-Authored-By: Warp <agent@warp.dev>
Per the style guide, em dashes are only acceptable in narrative/ conceptual text; procedural and instructional text should not use them. Fixes four instances introduced in the previous commit's restructured Steps content. Co-Authored-By: Warp <agent@warp.dev>
The <Steps> + per-step #### heading pattern isn't used anywhere in non-Guides procedural/quickstart content (see reference/cli/api-keys.mdx and platform/integrations/slack.mdx). Convert both procedures to plain numbered lists to match established convention and avoid the redundant, noisy heading-per-step alternative. Co-Authored-By: Warp <agent@warp.dev>
| ## Prerequisites | ||
|
|
||
| Keep prerequisites minimal and link out to How Factories work / Configure your Factory / Connect your Factory for depth rather than inlining it here.] | ||
| * **A Warp team with credits** - A factory belongs to a [Warp team](/knowledge-and-collaboration/teams/). Factory agents consume the team's credits. If the team has no active plan, you will be asked to select one during setup. |
There was a problem hiding this comment.
"If the team has no active plan, you will be asked to select one during setup." repeats the same information as the note starting on line 25. Could remove it from the pre-req list here.
| 2. In the sidebar, next to **Factories**, click **+** to start the setup wizard. | ||
|
|
||
| :::note | ||
| **No team yet?** The wizard first asks you to choose the team that will own the factory. If that team has no plan or credits, it opens **Select a Warp Plan**. A factory needs credits to run its agents. |
There was a problem hiding this comment.
We could probably summarize this a bit more.
| **No team yet?** The wizard first asks you to choose the team that will own the factory. If that team has no plan or credits, it opens **Select a Warp Plan**. A factory needs credits to run its agents. | |
| **No team yet?** If the team that owns the factory has no plan or credits, the wizard will ask you to select one. A factory needs credits to run its agents. |
|
|
||
| Warp provisions a default [environment](/platform/environments/) for the selected repos. | ||
|
|
||
| 5. Enter a **Factory name**, such as `Payments services`. Warp derives a matching **Factory alias**, the handle teammates use to @-mention the factory from connected tools like Slack and Linear. Keep it short and recognizable. |
There was a problem hiding this comment.
| 5. Enter a **Factory name**, such as `Payments services`. Warp derives a matching **Factory alias**, the handle teammates use to @-mention the factory from connected tools like Slack and Linear. Keep it short and recognizable. | |
| 5. Enter a **Factory name**, e.g., `Payments services`. Warp derives a matching **Factory alias**, the handle teammates use to @-mention the factory from connected tools like Slack and Linear. Keep it short and recognizable. |
| Warp provisions a default [environment](/platform/environments/) for the selected repos. | ||
|
|
||
| 5. Enter a **Factory name**, such as `Payments services`. Warp derives a matching **Factory alias**, the handle teammates use to @-mention the factory from connected tools like Slack and Linear. Keep it short and recognizable. | ||
| 6. The next screen offers to connect Slack. This quickstart skips integrations, so click **Next**. You can connect them any time from [Connect your factory](/factories/connect-your-factory/). |
There was a problem hiding this comment.
Let's make this step shorter. Only critical information. The in-line link wording is awkward:
"You can connect them any time from Connect your factory."
Users don't literally connect integrations from the docs page being linked, so the wording needs revised. They can learn about how to connect integrations or get more detailed relevant information from the linked document.
|
|
||
| 5. Enter a **Factory name**, such as `Payments services`. Warp derives a matching **Factory alias**, the handle teammates use to @-mention the factory from connected tools like Slack and Linear. Keep it short and recognizable. | ||
| 6. The next screen offers to connect Slack. This quickstart skips integrations, so click **Next**. You can connect them any time from [Connect your factory](/factories/connect-your-factory/). | ||
| 7. The foreman leads every factory. It's the orchestration agent you interact with directly. Below it, toggle the subagents it can dispatch: **Triage**, **Spec**, **Code**, and **Review**. All four start enabled, and at least one is required. Keep **Code** on so this quickstart's work item can end in a pull request. |
There was a problem hiding this comment.
This is too long and complex of a step. 1) revise to be more concise and 2) consider splitting into multiple or sub-steps if needed
|
|
||
| 8. Skip the issue tracker screen the same way as Slack: click **Next**. Warp creates the factory. | ||
|
|
||
| When the startup screen reports **Factory running!**, click **Go to dashboard**. |
There was a problem hiding this comment.
Is "Factory running!" an interactive UI element? Is it clickable? If not, it shouldn't be bolded.
|
|
||
| 5. Enter a **Factory name**, such as `Payments services`. Warp derives a matching **Factory alias**, the handle teammates use to @-mention the factory from connected tools like Slack and Linear. Keep it short and recognizable. | ||
| 6. The next screen offers to connect Slack. This quickstart skips integrations, so click **Next**. You can connect them any time from [Connect your factory](/factories/connect-your-factory/). | ||
| 7. The foreman leads every factory. It's the orchestration agent you interact with directly. Below it, toggle the subagents it can dispatch: **Triage**, **Spec**, **Code**, and **Review**. All four start enabled, and at least one is required. Keep **Code** on so this quickstart's work item can end in a pull request. |
There was a problem hiding this comment.
Are these words actually interactive UI elements? (Triage, Spec, etc.) If not, they should not be bolded?
|
|
||
| Adapt the pattern to your repository: name the file, the change you expect, and the command that verifies it. A narrow, explicit request makes the first run easy to judge. | ||
|
|
||
| The foreman picks up the request as a run on **Runs** and dispatches your subagents as child runs. |
There was a problem hiding this comment.
is it on the Runs page? Or what is "Runs" if not a page on the web app? Do we even need to say that or can we simply say "The foreman picks up the request as a run and dispatches..." since the following step explains "Runs" and "Activity"?
| * **Runs** - The foreman's run and the child runs it dispatches. | ||
| * **Activity** - The work item as it moves through its stages. Open it to see its event history and pull request artifacts. | ||
|
|
||
| 4. When the Code agent finishes, the work item links a pull request in GitHub. Review and merge it through your normal process. The factory drafts the change, and your team makes the call. |
There was a problem hiding this comment.
| 4. When the Code agent finishes, the work item links a pull request in GitHub. Review and merge it through your normal process. The factory drafts the change, and your team makes the call. | |
| 4. When the Code agent finishes, the work item links a pull request in GitHub. Review and merge it following your normal process. |
quickstart.mdx: - Remove duplicate 'no active plan' info from the prerequisites bullet now that the setup wizard note covers it. - Condense the 'no team yet' note per suggestion. - Switch 'such as' to 'e.g.,' per suggestion. - Shorten the Slack-skip step and fix the awkward 'connect them any time from [page]' wording -- readers learn about integrations from the linked page, they don't connect them from it. - Trim the agent-selection step: drop the redundant foreman explanation (already covered in the intro) and the non-critical 'all four start enabled' detail. interactive UI element. - Drop the redundant 'on Runs' from the foreman pick-up sentence, since the following step already introduces the Runs page. - Simplify the final review/merge step per suggestion. troubleshooting.mdx: - Replace vague 'contact Warp' with the established contact-sales link convention used elsewhere in the docs. Co-Authored-By: Warp <agent@warp.dev>
The internal link checker doesn't resolve {VARS.X} expressions inside
markdown [text](...) links (only via JSX <a href={VARS.X}>), so
{VARS.CONTACT_SALES_URL} was flagged as a literal broken relative
path. Use a hardcoded URL instead, matching the existing pattern in
platform/self-hosting/index.mdx for the same contact-sales link.
Co-Authored-By: Warp <agent@warp.dev>
HYC offered to be convinced on this one and deferred the call, so: keeping it in Integrations rather than moving it to Factory configuration. The page itself makes the argument. It opens with "Automation filters decide which events from your connected tools start factory work", and its core reference is a per-source table -- Slack, GitHub, GitLab, Linear -- whose rows link straight back to the integration pages listed directly above it in the sidebar. It reads as the last step of wiring up a source: you connect Slack, then you decide which Slack events should actually start a run. The argument for the other placement is that a filter is configuration, which is true but does not separate it from anything. The integration pages are configuration too. "Factory configuration" earns its name by being scoped to the factory itself -- its agents, its definition files, its infrastructure -- whereas a filter only means something once an external tool is connected. Easy to flip back if HYC disagrees: it is one line, and the reasoning is in a comment next to it. Also reconciled the branch with the base merge pushed onto it, which brought in the quickstart rewrite and the new Troubleshooting page (#517). Left Troubleshooting where HYC put it, inside the group this PR renamed to Management & observability. Co-Authored-By: Warp <agent@warp.dev>
…e rest of the docs (#556) * docs(factories): make sidebar group and page names consistent Per HYC: the Factories group names were the odd ones out, and the page titles were inconsistent with each other. Group labels. Every other tab names groups with noun phrases describing a subject area -- "Agent configuration", "Triggers & integrations", "Plans and billing", "Team management", "Security and compliance". Factories was the only tab using bare imperatives, which is why "Configure / Connect / Operate" read as belonging to a different product: Get started -> Getting started Configure -> Factory configuration Connect -> Work intake Operate -> Management & observability "Getting started" matches the Terminal, Enterprise, and Guides tabs, which all use the gerund. "Factory configuration" and "Management & observability" are deliberate mirrors of the Automation Platform tab next door, since the concepts are the same one level up: a control room is where you watch a factory, and scorers are how you measure it. "Work intake" needs more explanation. Those pages all answer the same question -- how does work reach the factory -- across connections, integrations, the filters deciding which events qualify, and the MCP that hands work in. "Work item" and "intake" are the product's own vocabulary, not docs coinage. "Integrations & intake" was the obvious alternative and was rejected because it would nest an Integrations group inside a group with Integrations in its name. Page titles. The four integration pages used four different patterns: github "GitHub integration" jira "Connect Jira to your factory" linear "Connect Linear to your factory" slack "Connect a factory to Slack" Standardized on "Connect {Service} to your factory", the pattern two of them already used, rather than importing the Automation Platform tab's "{Service} integration". That tab already has its own jira, linear, github, and slack pages under that exact pattern, so reusing it would create duplicate titles across the site -- something docs-seo-audit flags, and which splits search intent between two pages that serve different products. These pages are procedural anyway, so a task-oriented title fits. Also: - "The Factory control room" -> "Factory control room". No other page title in the tab opens with an article. - The "How Warp Factories work" sidebar override was shadowing that page's own frontmatter label, "How Factories work". Aligned to the shorter one, since "Warp" is redundant inside the Factories tab and the sibling labels ("Factory agents", "Factory MCP") already drop it. No slugs move, so no redirects are needed. Left alone deliberately: HYC is adding a Troubleshooting section for general Factory FAQs and doing a content cleanup pass once the outstanding PRs land, so this change is naming only. Not build-verified locally -- local builds have been unreliable in this worktree. The sidebar edit is label strings plus comments, and the file parses with balanced delimiters; CI covers the rest. Co-Authored-By: Warp <agent@warp.dev> * docs(factories): apply HYC feedback on the sidebar groups Work intake -> Integrations, and Automation filters moves to Factory configuration. Renaming the group to "Integrations" meant the nested Integrations subgroup had to go, or the sidebar would have read Integrations > Integrations > Slack. Flattened it, so the four service pages now sit directly in the group alongside "Connect your factory" as its lead-in and Factory MCP at the end. That also drops the tab to two levels throughout, matching every other group in it. Automation filters is arguably intake rather than configuration, since what it governs is inbound work. Going with HYC's placement: a filter is something you define about your factory, next to its agents and its definition files. Ordered so the group reads as who runs the work, how it is defined, which work qualifies, and where it runs. Resulting tab: Getting started Overview / Quickstart / How Factories work Factory configuration Factory agents / Definitions as code / Automation filters / Infrastructure & security Integrations Connect your factory / Slack / GitHub / Linear / Jira / Factory MCP Management & observability Control room / Measure and improve No slugs move, so no redirects are needed. Co-Authored-By: Warp <agent@warp.dev> * docs(factories): keep Automation filters with the integrations HYC offered to be convinced on this one and deferred the call, so: keeping it in Integrations rather than moving it to Factory configuration. The page itself makes the argument. It opens with "Automation filters decide which events from your connected tools start factory work", and its core reference is a per-source table -- Slack, GitHub, GitLab, Linear -- whose rows link straight back to the integration pages listed directly above it in the sidebar. It reads as the last step of wiring up a source: you connect Slack, then you decide which Slack events should actually start a run. The argument for the other placement is that a filter is configuration, which is true but does not separate it from anything. The integration pages are configuration too. "Factory configuration" earns its name by being scoped to the factory itself -- its agents, its definition files, its infrastructure -- whereas a filter only means something once an external tool is connected. Easy to flip back if HYC disagrees: it is one line, and the reasoning is in a comment next to it. Also reconciled the branch with the base merge pushed onto it, which brought in the quickstart rewrite and the new Troubleshooting page (#517). Left Troubleshooting where HYC put it, inside the group this PR renamed to Management & observability. Co-Authored-By: Warp <agent@warp.dev> --------- Co-authored-by: Warp <agent@warp.dev> Co-authored-by: Hong Yi Chen <hongyi@warp.dev>
Summary
Reworks the quickstart into a five-step critical path from prerequisites to the first verified work item. Optional integrations move to next steps, the default roster becomes one link, and the verified first-work-item prompt is a titled text example.
Per review feedback, troubleshooting content no longer lives in the quickstart: the three entries moved to a new dedicated
/factories/troubleshooting/page in the template-standard cause/fix format, added to the Operate sidebar group and linked once from Next steps.Final size: ~670 prose words (was 793 before the troubleshooting move). Across the section, the senior editorial pass reduced prose from about 14,600 to 7,649 words while preserving verified behavior and security caveats.
Foundation
Shared navigation, route placeholders, Early Access badge support, and guide migrations are merged in #537. This PR contains its feature-owned files (quickstart plus the new troubleshooting page) and a one-line sidebar entry, and passes CI independently.
Validation
npm run typecheck: passednpm run build: 378 pages built successfully (includes the new troubleshooting page)Latest source refresh
Matches the current onboarding wizard, real Select a Warp Plan gate, configurable 2–5-agent roster, optional Linear tracker, creation timing, and Stop task behavior.
Verified against Warp
e72fd7aacand warp-server9be39e484b. Broken, placeholder, partial, and spec-only surfaces remain excluded. The troubleshooting page carries the same verified claims previously in the quickstart, unchanged.Proposed reviewers
Based on the Warp Factories Soft Launch (August 18th) tracker. For planning only; no review requests have been sent.
@johnturcoo@peicodes@moirahuangScreenshots
Not included. The revision uses sourced tables, Mermaid diagrams, and verified code/config examples; no safe approved Factory UI assets exist yet.
Unverified claims
None — all UI labels, defaults, eligibility claims, diagrams, and configuration details were verified against source or deliberately omitted.